//=============================================================================
/**
 * @file	gym_local.h
 * @brief	ジム仕掛けとか
 * @author	Nozomu Saito
 *
 */
//=============================================================================
#ifndef __GYM_LOCAL_H__
#define __GYM_LOCAL_H__

//水ジム
//swtich用
#define GYM_WATER_LV1	(0)
#define GYM_WATER_LV2	(1)
#define GYM_WATER_LV3	(2)

//ゴーストジム
//swtich用
#define GYM_GHOST_LIFT_LV1	(0)
#define GYM_GHOST_LIFT_LV2	(1)

#define GHOST_LIFT_ROOM_START_Z		(22)	//リフトの部屋に初めて入ったときの、自機Z座標

//鋼ジム
#define STEEL_LIFT_MAX	(24)

//格闘ジム

//電気ジム

#define ELEC_ROOM_MAX	(3)

//飛行ジム
//swtich用
#define GYM_SKY_LIFT_LV1	(0)
#define GYM_SKY_LIFT_LV2	(1)

//虫ジム
#define GYM_INSECT_LIFT_DEF1	(0)
#define GYM_INSECT_LIFT_DEF2	(1)
#define GYM_INSECT_LIFT_DEF3	(2)
#define GYM_INSECT_LIFT_DEF4	(7)

#define GYM_INSECT_RAIL_ALL		(0)

//ドラゴンジム
#define FLOOR_POS_X_FIRST	(13)
#define FLOOR_POS_Z_FIRST	(75)
#define FLOOR_POS_X_SECOND	(9)
#define FLOOR_POS_Z_SECOND	(58)
#define FLOOR_POS_X_THIRD	(14)
#define FLOOR_POS_Z_THIRD	(32)
#define FLOOR_REV_0		(0)
#define FLOOR_REV_90	(1)
#define FLOOR_REV_180	(2)
#define FLOOR_REV_270	(3)

///////ジムワーク///////
//水ジムワーク---------------------
typedef struct WATER_GYM_WORK_tag
{
	u8 Water;//水ジムの水位
}WATER_GYM_WORK;

//ゴーストジムワーク-------------------
typedef struct GHOST_GYM_WORK_tag
{
	u8 LightOff[4];
}GHOST_GYM_WORK;

//鋼ジムワーク---------------------
typedef struct STEEL_GYM_WORK_tag
{
	int LiftPosBit;	//リフトの位置を格納
}STEEL_GYM_WORK;

//格闘ジムワーク--------------------
typedef struct COMBAT_GYM_WORK_tag
{
	int HandleFlg;		//水止めハンドル回したかどうか　0なら回していない
}COMBAT_GYM_WORK;

//電気ジムワーク--------------------
typedef struct ELEC_GYM_WORK_tag
{
	u8 SwitchPos1;		//1番スイッチ位置インデックス
	u8 SwitchPos2;		//2番スイッチ位置インデックス
	u8 Switch1OK;		//1番スイッチ開錠フラグ
	u8 Switch2OK;		//2番スイッチ開錠フラグ
}ELEC_GYM_WORK;

//飛行ジムワーク-------------------
typedef struct SKY_GYM_WORK_tag
{
	int Lift;	//リフトの位置（上か下か）
}SKY_GYM_WORK;

//虫ジムワーク---------------------
typedef struct INSECT_GYM_WORK_tag
{
	u8 Lift[4];	//4つのリフトの位置　0〜11（8になることは無い）
	int RailState;	//レールの状況	0:2本ある 1:1番レールのみ 2:2番レールのみ 3:レールなし
}INSECT_GYM_WORK;

//ドラゴンジムワーク---------------------
typedef struct DRAGON_GYM_WORK_tag
{
	u16 FloorX[3];
	u16 FloorZ[3];
	u8 RevState[3];
	u8 dummy;
}DRAGON_GYM_WORK;

//毒ジムワーク---------------------
typedef struct POISON_GYM_WORK_tag
{
	int dummy;
}POISON_GYM_WORK;

//万能ジムワーク---------------------
typedef struct ALMIGHTY_GYM_WORK_tag
{
	int dummy;
}ALMIGHTY_GYM_WORK;

#endif	//__GYM_LOCAL_H__